package com.ssy.lingxi.member.merchant.api.model.vo.paas;

import com.ssy.lingxi.member.merchant.api.handler.annotation.MemberLevelTypeAnno;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Positive;
import java.io.Serializable;
import java.util.List;

/**
 * 新增或修改基础等级配置接口参数
 * @author 万宁
 * @version 2.0.0
 * @date 2020-08-23
 */
public class BaseLevelConfigVO implements Serializable {
    private static final long serialVersionUID = -5587694763277440973L;
    /**
     * 会员等级
     */
    @NotNull(message = "等级要大于0")
    @Positive(message = "等级要大于0")
    private Integer level;

    /**
     * 等级标签
     */
    @NotBlank(message = "等级标签不能为空")
    private String levelTag;

    /**
     * 会员等级类型枚举，定义在MemberLevelTypeEnum
     */
    @NotNull(message = "会员等级类型枚举不能为空")
    @MemberLevelTypeAnno
    private Integer memberLevelTypeEnum;

    /**
     * 升级分值标签
     */
    @NotBlank(message = "分值标签不能为空")
    private String scoreTag;

    /**
     * 会员等级说明
     */
    private String remark;

    /**
     * 角色Id列表
     */
    @NotEmpty(message = "角色不能为空")
    private List<Long> roleIds;

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    public String getLevelTag() {
        return levelTag;
    }

    public void setLevelTag(String levelTag) {
        this.levelTag = levelTag;
    }

    public Integer getMemberLevelTypeEnum() {
        return memberLevelTypeEnum;
    }

    public void setMemberLevelTypeEnum(Integer memberLevelTypeEnum) {
        this.memberLevelTypeEnum = memberLevelTypeEnum;
    }

    public String getScoreTag() {
        return scoreTag;
    }

    public void setScoreTag(String scoreTag) {
        this.scoreTag = scoreTag;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<Long> getRoleIds() {
        return roleIds;
    }

    public void setRoleIds(List<Long> roleIds) {
        this.roleIds = roleIds;
    }
}
